#ifndef WATERCIRCLEBUTTON_H
#define WATERCIRCLEBUTTON_H

#include "InteractiveButtonBase.h"

class WaterCircleButton : public InteractiveButtonBase {
public:
    explicit WaterCircleButton(QWidget *parent = nullptr);

    explicit WaterCircleButton(const QIcon& icon, QWidget *parent = nullptr);

    explicit WaterCircleButton(const QPixmap& pixmap, QWidget *parent = nullptr);

protected:
    void enterEvent(QEnterEvent *event) override;

    void leaveEvent(QEvent *event) override;

    void mousePressEvent(QMouseEvent *event) override;

    void mouseReleaseEvent(QMouseEvent *event) override;

    void mouseMoveEvent(QMouseEvent *event) override;

    void resizeEvent(QResizeEvent *event) override;

    QPainterPath getBgPainterPath() override;

    QPainterPath getWaterPainterPath(Water water) override;

    void simulateStatePress(bool s = true);

    bool inArea(const QPoint& point)override;

protected:
    QPoint center_pos;
    bool in_circle;
    int radius;
};

#endif // WATERCIRCLEBUTTON_H
